[INFO] cloning repository https://github.com/low901028/learning_agent_demos
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/low901028/learning_agent_demos" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flow901028%2Flearning_agent_demos", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flow901028%2Flearning_agent_demos'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fe7ad3d9fc301fc6607623e0934be0e3f5b3e225
[INFO] testing low901028/learning_agent_demos against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flow901028%2Flearning_agent_demos" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/low901028/learning_agent_demos
[INFO] finished tweaking git repo https://github.com/low901028/learning_agent_demos
[INFO] tweaked toml for git repo https://github.com/low901028/learning_agent_demos written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/low901028/learning_agent_demos on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/low901028/learning_agent_demos already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/jbg/cudaforge`
[INFO] [stderr] warning: patch `cudaforge v0.1.6 (https://github.com/jbg/cudaforge?rev=e7c1967340e40673db98dc9e17da0f04834a456f#e7c19673)` was not used in the crate graph
[INFO] [stderr] help: Check that the patched package version and available features are compatible
[INFO] [stderr]       with the dependency requirements. If the patch has a different version from
[INFO] [stderr]       what is locked in the Cargo.lock file, run `cargo update` to use the new
[INFO] [stderr]       version. This may also occur with an optional dependency that is not enabled.
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rustls-native-certs v0.8.4
[INFO] [stderr]   Downloaded reqwest v0.13.4
[INFO] [stderr]   Downloaded aws-lc-rs v1.17.0
[INFO] [stderr]   Downloaded aws-lc-sys v0.41.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e004c7a51fd62bc6bf1ddf3c98fc808a0cf9cedb7ba162d5b5f3ec571f0f6193
[INFO] running `Command { std: "docker" "start" "-a" "e004c7a51fd62bc6bf1ddf3c98fc808a0cf9cedb7ba162d5b5f3ec571f0f6193", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e004c7a51fd62bc6bf1ddf3c98fc808a0cf9cedb7ba162d5b5f3ec571f0f6193", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e004c7a51fd62bc6bf1ddf3c98fc808a0cf9cedb7ba162d5b5f3ec571f0f6193", kill_on_drop: false }`
[INFO] [stdout] e004c7a51fd62bc6bf1ddf3c98fc808a0cf9cedb7ba162d5b5f3ec571f0f6193
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 901188eb00a34d5543d73349208cf73922ad00e091109a794bbe9baf4f11746e
[INFO] running `Command { std: "docker" "start" "-a" "901188eb00a34d5543d73349208cf73922ad00e091109a794bbe9baf4f11746e", kill_on_drop: false }`
[INFO] [stderr] warning: patch `cudaforge v0.1.6 (https://github.com/jbg/cudaforge?rev=e7c1967340e40673db98dc9e17da0f04834a456f#e7c19673)` was not used in the crate graph
[INFO] [stderr] help: Check that the patched package version and available features are compatible
[INFO] [stderr]       with the dependency requirements. If the patch has a different version from
[INFO] [stderr]       what is locked in the Cargo.lock file, run `cargo update` to use the new
[INFO] [stderr]       version. This may also occur with an optional dependency that is not enabled.
[INFO] [stderr] warning: output filename collision at /opt/rustwide/target/debug/main
[INFO] [stderr]   |
[INFO] [stderr]   = note: the bin target `main` in package `simple_hello_agents_v2 v1.37.0 (/opt/rustwide/workdir/crates/ch-07)` has the same output filename as the bin target `main` in package `simple_hello_agents_base v1.37.0 (/opt/rustwide/workdir/crates/ch-04)`
[INFO] [stderr]   = note: this may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>
[INFO] [stderr]   = help: consider changing their names to be unique or compiling them separately
[INFO] [stderr] warning: output filename collision at /opt/rustwide/target/debug/main.dwp
[INFO] [stderr]   |
[INFO] [stderr]   = note: the bin target `main` in package `simple_hello_agents_v2 v1.37.0 (/opt/rustwide/workdir/crates/ch-07)` has the same output filename as the bin target `main` in package `simple_hello_agents_base v1.37.0 (/opt/rustwide/workdir/crates/ch-04)`
[INFO] [stderr]   = note: this may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>
[INFO] [stderr]   = help: consider changing their names to be unique or compiling them separately
[INFO] [stderr]    Compiling aws-lc-rs v1.17.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling aws-lc-sys v0.41.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling uuid v1.23.2
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling simple_hello_agents_base v1.37.0 (/opt/rustwide/workdir/crates/ch-04)
[INFO] [stderr]    Compiling hello_agents v1.37.0 (/opt/rustwide/workdir/crates/hello_agents)
[INFO] [stdout] warning: named argument `question` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                     -- this formatting argument uses named argument `question` by position
[INFO] [stdout] 116 |                 EXECUTOR_PROMPT_TEMPLATE,
[INFO] [stdout] 117 |                 question = question,
[INFO] [stdout]     |                 ^^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(named_arguments_used_positionally)]` on by default
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {question} {} {} {}",
[INFO] [stdout]     |                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `plan` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                        -- this formatting argument uses named argument `plan` by position
[INFO] [stdout] ...
[INFO] [stdout] 118 |                 plan = format!("{:?}", plan),
[INFO] [stdout]     |                 ^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {plan} {} {}",
[INFO] [stdout]     |                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `history` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                           -- this formatting argument uses named argument `history` by position
[INFO] [stdout] ...
[INFO] [stdout] 119 |                 history = if history.is_empty() { "无" } else { &history },
[INFO] [stdout]     |                 ^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {history} {}",
[INFO] [stdout]     |                            +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `current_step` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                              -- this formatting argument uses named argument `current_step` by position
[INFO] [stdout] ...
[INFO] [stdout] 120 |                 current_step = step,
[INFO] [stdout]     |                 ^^^^^^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {current_step}",
[INFO] [stdout]     |                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> crates/ch-04/src/tools.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]  --> crates/hello_agents/src/core/streaming.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> crates/hello_agents/src/core/streaming.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Poll`
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::task::{Context, Poll};
[INFO] [stdout]    |                 ^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prompt`
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |             let prompt = format!(
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prompt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `llm_client` is never read
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct PlanAndSolveAgent {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 151 |     llm_client: Arc<LLMClient>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling simple_hello_agents_v2 v1.37.0 (/opt/rustwide/workdir/crates/ch-07)
[INFO] [stdout] warning: enum `MessageRole` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/message.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum MessageRole {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `val_to_str` and `str_to_val` are never used
[INFO] [stdout]   --> crates/hello_agents/src/core/message.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MessageRole {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 27 |     fn val_to_str(&self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn str_to_val(role: &str) -> Option<MessageRole> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/message.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_dict`, `from_dict`, and `to_text` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/message.rs:68:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl Message {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  68 |     pub fn new(content: String,
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub(crate) fn to_dict(self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn from_dict(mut dict: HashMap<String, serde_json::Value>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn to_text(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HelloAgentException` is never used
[INFO] [stdout]  --> crates/hello_agents/src/core/exceptions.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum HelloAgentException {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `llm`, `agent`, `config`, `tool`, and `is_llm_error` are never used
[INFO] [stdout]   --> crates/hello_agents/src/core/exceptions.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl HelloAgentException {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 30 |     #[inline]
[INFO] [stdout] 31 |     pub fn llm(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn agent(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn config(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn tool(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn is_llm_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> crates/hello_agents/src/core/config.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Config {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_model` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | fn default_model() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_provider` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn default_provider() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_temperature` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:196:4
[INFO] [stdout]     |
[INFO] [stdout] 196 | fn default_temperature() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_log_level` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn default_log_level() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_history_length` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn default_max_history_length() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_context_window` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:205:4
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn default_context_window() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_compression_threshold` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn default_compression_threshold() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_min_retain_rounds` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn default_min_retain_rounds() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_provider` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:214:4
[INFO] [stdout]     |
[INFO] [stdout] 214 | fn default_summary_provider() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_model` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn default_summary_model() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_max_tokens` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:220:4
[INFO] [stdout]     |
[INFO] [stdout] 220 | fn default_summary_max_tokens() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_temperature` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn default_summary_temperature() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_output_max_lines` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:226:4
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn default_tool_output_max_lines() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_output_max_bytes` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:229:4
[INFO] [stdout]     |
[INFO] [stdout] 229 | fn default_tool_output_max_bytes() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_output_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:232:4
[INFO] [stdout]     |
[INFO] [stdout] 232 | fn default_tool_output_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_truncate_direction` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn default_truncate_direction() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_true` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn default_true() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_trace_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:241:4
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn default_trace_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_skills_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn default_skills_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_failure_threshold` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn default_failure_threshold() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_recovery_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn default_recovery_timeout() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_session_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:253:4
[INFO] [stdout]     |
[INFO] [stdout] 253 | fn default_session_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_auto_save_interval` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:256:4
[INFO] [stdout]     |
[INFO] [stdout] 256 | fn default_auto_save_interval() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_subagent_max_steps` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:259:4
[INFO] [stdout]     |
[INFO] [stdout] 259 | fn default_subagent_max_steps() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_light_provider` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:262:4
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn default_light_provider() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_light_model` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:265:4
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn default_light_model() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_todo_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn default_todo_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_devlog_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:271:4
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn default_devlog_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_concurrent_tools` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn default_max_concurrent_tools() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_hook_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn default_hook_timeout() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_llm_async_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:280:4
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn default_llm_async_timeout() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_async_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn default_tool_async_timeout() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_stream_buffer_size` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn default_stream_buffer_size() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_env`, `to_dict`, and `get_available_tokens` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 348 | impl Config {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 349 |     /// 根据env文件获取对应的变量内容
[INFO] [stdout] 350 |     pub fn from_env() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub(crate) fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn get_available_tokens(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventType` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum EventType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `val_as_str` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl EventType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 50 |     pub fn val_as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AgentEvent` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct AgentEvent {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_dict` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl AgentEvent {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 114 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionContext` is never constructed
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub struct ExecutionContext {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `increment_step`, `add_tokens`, `set_metadata`, and `get_metadata` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl ExecutionContext {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 166 |     pub fn new(input_text: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn increment_step(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn add_tokens(&mut self, tokens: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn set_metadata(mut self, key: &'static str, value: &'static str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn get_metadata(self, key: &str) -> Option<serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LifecycleHook` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:193:10
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub type LifecycleHook =
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionStore` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SessionStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl SessionStore {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn new(session_dir: &str) -> io::Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     fn generate_session_id(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn save(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn load(&self, filepath: &Path) -> io::Result<serde_json::Value> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn list_sessions(&self) -> io::Result<Vec<HashMap<String, serde_json::Value>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn delete(&self, name: &str) -> io::Result<bool> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn check_config_consistency(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn check_tool_schema_consistency(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn compute_tool_hash(signature: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StreamEventType` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum StreamEventType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `val_as_str` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl StreamEventType {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 39 |     pub fn val_as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamEvent` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct StreamEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_sse`, and `to_dict` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl StreamEvent {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  72 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn to_sse(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamBuffer` is never constructed
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct StreamBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `get_all`, `clear`, `filter_by_type`, and `len` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl StreamBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 139 |     pub fn new(max_buffer_size: Option<usize>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn add(&mut self, event: StreamEvent) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn get_all(&self) -> &Vec<StreamEvent> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn filter_by_type(&self, event_type: StreamEventType) -> Vec<StreamEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_to_sse` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn stream_to_sse<S>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_to_json` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub fn stream_to_json<S>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> crates/ch-07/src/my_llm.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |             (s) => {
[INFO] [stdout]     |             ^ ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -             (s) => {
[INFO] [stdout] 127 +             s  => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> crates/ch-07/src/message.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/ch-07/src/my_llm.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |             _ => ""
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/ch-07/src/my_llm.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |             "ollama" => "ollama",
[INFO] [stdout]     |             -------- matches some of the same values
[INFO] [stdout] 125 |             "vllm" => "vllm",
[INFO] [stdout]     |             ------ matches some of the same values
[INFO] [stdout] 126 |             "local" => "local",
[INFO] [stdout]     |             ------- matches some of the same values
[INFO] [stdout] 127 |             (s) => {
[INFO] [stdout]     |              - matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 138 |             _ => ""
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MessageRole` is never used
[INFO] [stdout]  --> crates/ch-07/src/message.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum MessageRole {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `val_to_str` and `str_to_val` are never used
[INFO] [stdout]   --> crates/ch-07/src/message.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl MessageRole {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 15 |     /// role 文字表示
[INFO] [stdout] 16 |     pub fn val_to_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn str_to_val(role: &str) -> MessageRole {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MessageV2` is never constructed
[INFO] [stdout]   --> crates/ch-07/src/message.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct MessageV2{
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/ch-07/src/message.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl MessageV2 {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 49 |     pub fn new(msg: Message, timestamp: Option<usize>, metadata: Option<HashMap<String, serde_json::Value>>) -> MessageV2 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatRequestV2` is never constructed
[INFO] [stdout]   --> crates/ch-07/src/message.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ChatRequestV2 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Config` should have a snake case name
[INFO] [stdout]  --> crates/ch-07/src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | mod Config;
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `config`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> crates/ch-07/src/bin/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> crates/ch-07/src/bin/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 52s
[INFO] running `Command { std: "docker" "inspect" "901188eb00a34d5543d73349208cf73922ad00e091109a794bbe9baf4f11746e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "901188eb00a34d5543d73349208cf73922ad00e091109a794bbe9baf4f11746e", kill_on_drop: false }`
[INFO] [stdout] 901188eb00a34d5543d73349208cf73922ad00e091109a794bbe9baf4f11746e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 45e9b365a12befa7c5ca783b29e04adeb9b99e8d40f62eb2ed3cc6e632f68a5e
[INFO] running `Command { std: "docker" "start" "-a" "45e9b365a12befa7c5ca783b29e04adeb9b99e8d40f62eb2ed3cc6e632f68a5e", kill_on_drop: false }`
[INFO] [stderr] warning: patch `cudaforge v0.1.6 (https://github.com/jbg/cudaforge?rev=e7c1967340e40673db98dc9e17da0f04834a456f#e7c19673)` was not used in the crate graph
[INFO] [stderr] help: Check that the patched package version and available features are compatible
[INFO] [stderr]       with the dependency requirements. If the patch has a different version from
[INFO] [stderr]       what is locked in the Cargo.lock file, run `cargo update` to use the new
[INFO] [stderr]       version. This may also occur with an optional dependency that is not enabled.
[INFO] [stdout] warning: named argument `question` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                     -- this formatting argument uses named argument `question` by position
[INFO] [stdout] 116 |                 EXECUTOR_PROMPT_TEMPLATE,
[INFO] [stdout] 117 |                 question = question,
[INFO] [stdout]     |                 ^^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(named_arguments_used_positionally)]` on by default
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {question} {} {} {}",
[INFO] [stdout]     |                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `plan` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                        -- this formatting argument uses named argument `plan` by position
[INFO] [stdout] ...
[INFO] [stdout] 118 |                 plan = format!("{:?}", plan),
[INFO] [stdout]     |                 ^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {plan} {} {}",
[INFO] [stdout]     |                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `history` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                           -- this formatting argument uses named argument `history` by position
[INFO] [stdout] ...
[INFO] [stdout] 119 |                 history = if history.is_empty() { "无" } else { &history },
[INFO] [stdout]     |                 ^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {history} {}",
[INFO] [stdout]     |                            +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `current_step` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                              -- this formatting argument uses named argument `current_step` by position
[INFO] [stdout] ...
[INFO] [stdout] 120 |                 current_step = step,
[INFO] [stdout]     |                 ^^^^^^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {current_step}",
[INFO] [stdout]     |                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> crates/ch-04/src/tools.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prompt`
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |             let prompt = format!(
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prompt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `llm_client` is never read
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct PlanAndSolveAgent {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 151 |     llm_client: Arc<LLMClient>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling simple_hello_agents_base v1.37.0 (/opt/rustwide/workdir/crates/ch-04)
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> crates/ch-07/src/my_llm.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |             (s) => {
[INFO] [stdout]     |             ^ ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -             (s) => {
[INFO] [stdout] 127 +             s  => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> crates/ch-07/src/message.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/ch-07/src/my_llm.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |             _ => ""
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/ch-07/src/my_llm.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |             "ollama" => "ollama",
[INFO] [stdout]     |             -------- matches some of the same values
[INFO] [stdout] 125 |             "vllm" => "vllm",
[INFO] [stdout]     |             ------ matches some of the same values
[INFO] [stdout] 126 |             "local" => "local",
[INFO] [stdout]     |             ------- matches some of the same values
[INFO] [stdout] 127 |             (s) => {
[INFO] [stdout]     |              - matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 138 |             _ => ""
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MessageRole` is never used
[INFO] [stdout]  --> crates/ch-07/src/message.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum MessageRole {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `val_to_str` and `str_to_val` are never used
[INFO] [stdout]   --> crates/ch-07/src/message.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl MessageRole {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 15 |     /// role 文字表示
[INFO] [stdout] 16 |     pub fn val_to_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn str_to_val(role: &str) -> MessageRole {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MessageV2` is never constructed
[INFO] [stdout]   --> crates/ch-07/src/message.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct MessageV2{
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/ch-07/src/message.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl MessageV2 {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 49 |     pub fn new(msg: Message, timestamp: Option<usize>, metadata: Option<HashMap<String, serde_json::Value>>) -> MessageV2 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatRequestV2` is never constructed
[INFO] [stdout]   --> crates/ch-07/src/message.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ChatRequestV2 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Config` should have a snake case name
[INFO] [stdout]  --> crates/ch-07/src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | mod Config;
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `config`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling simple_hello_agents_v2 v1.37.0 (/opt/rustwide/workdir/crates/ch-07)
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]  --> crates/hello_agents/src/core/streaming.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> crates/hello_agents/src/core/streaming.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Poll`
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::task::{Context, Poll};
[INFO] [stdout]    |                 ^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:240:9
[INFO] [stdout]     |
[INFO] [stdout] 240 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MessageRole` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/message.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum MessageRole {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `val_to_str` and `str_to_val` are never used
[INFO] [stdout]   --> crates/hello_agents/src/core/message.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MessageRole {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 27 |     fn val_to_str(&self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn str_to_val(role: &str) -> Option<MessageRole> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/message.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_dict`, `from_dict`, and `to_text` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/message.rs:68:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl Message {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  68 |     pub fn new(content: String,
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub(crate) fn to_dict(self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn from_dict(mut dict: HashMap<String, serde_json::Value>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn to_text(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HelloAgentException` is never used
[INFO] [stdout]  --> crates/hello_agents/src/core/exceptions.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum HelloAgentException {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `llm`, `agent`, `config`, `tool`, and `is_llm_error` are never used
[INFO] [stdout]   --> crates/hello_agents/src/core/exceptions.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl HelloAgentException {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 30 |     #[inline]
[INFO] [stdout] 31 |     pub fn llm(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn agent(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn config(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn tool(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn is_llm_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> crates/hello_agents/src/core/config.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Config {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_model` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | fn default_model() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_provider` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn default_provider() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_temperature` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:196:4
[INFO] [stdout]     |
[INFO] [stdout] 196 | fn default_temperature() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_log_level` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn default_log_level() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_history_length` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn default_max_history_length() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_context_window` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:205:4
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn default_context_window() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_compression_threshold` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn default_compression_threshold() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_min_retain_rounds` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn default_min_retain_rounds() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_provider` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:214:4
[INFO] [stdout]     |
[INFO] [stdout] 214 | fn default_summary_provider() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_model` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn default_summary_model() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_max_tokens` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:220:4
[INFO] [stdout]     |
[INFO] [stdout] 220 | fn default_summary_max_tokens() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_temperature` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn default_summary_temperature() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_output_max_lines` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:226:4
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn default_tool_output_max_lines() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_output_max_bytes` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:229:4
[INFO] [stdout]     |
[INFO] [stdout] 229 | fn default_tool_output_max_bytes() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_output_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:232:4
[INFO] [stdout]     |
[INFO] [stdout] 232 | fn default_tool_output_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_truncate_direction` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn default_truncate_direction() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_true` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn default_true() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_trace_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:241:4
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn default_trace_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_skills_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn default_skills_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_failure_threshold` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn default_failure_threshold() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_recovery_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn default_recovery_timeout() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_session_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:253:4
[INFO] [stdout]     |
[INFO] [stdout] 253 | fn default_session_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_auto_save_interval` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:256:4
[INFO] [stdout]     |
[INFO] [stdout] 256 | fn default_auto_save_interval() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_subagent_max_steps` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:259:4
[INFO] [stdout]     |
[INFO] [stdout] 259 | fn default_subagent_max_steps() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_light_provider` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:262:4
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn default_light_provider() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_light_model` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:265:4
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn default_light_model() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_todo_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn default_todo_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_devlog_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:271:4
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn default_devlog_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_concurrent_tools` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn default_max_concurrent_tools() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_hook_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn default_hook_timeout() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_llm_async_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:280:4
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn default_llm_async_timeout() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_async_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn default_tool_async_timeout() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_stream_buffer_size` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn default_stream_buffer_size() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_env`, `to_dict`, and `get_available_tokens` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 348 | impl Config {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 349 |     /// 根据env文件获取对应的变量内容
[INFO] [stdout] 350 |     pub fn from_env() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub(crate) fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn get_available_tokens(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventType` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum EventType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `val_as_str` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl EventType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 50 |     pub fn val_as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AgentEvent` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct AgentEvent {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_dict` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl AgentEvent {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 114 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionContext` is never constructed
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub struct ExecutionContext {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `increment_step`, `add_tokens`, `set_metadata`, and `get_metadata` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl ExecutionContext {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 166 |     pub fn new(input_text: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn increment_step(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn add_tokens(&mut self, tokens: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn set_metadata(mut self, key: &'static str, value: &'static str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn get_metadata(self, key: &str) -> Option<serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LifecycleHook` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:193:10
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub type LifecycleHook =
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionStore` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SessionStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl SessionStore {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn new(session_dir: &str) -> io::Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     fn generate_session_id(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn save(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn load(&self, filepath: &Path) -> io::Result<serde_json::Value> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn list_sessions(&self) -> io::Result<Vec<HashMap<String, serde_json::Value>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn delete(&self, name: &str) -> io::Result<bool> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn check_config_consistency(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn check_tool_schema_consistency(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn compute_tool_hash(signature: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StreamEventType` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum StreamEventType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `val_as_str` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl StreamEventType {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 39 |     pub fn val_as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamEvent` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct StreamEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_sse`, and `to_dict` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl StreamEvent {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  72 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn to_sse(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamBuffer` is never constructed
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct StreamBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `get_all`, `clear`, `filter_by_type`, and `len` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl StreamBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 139 |     pub fn new(max_buffer_size: Option<usize>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn add(&mut self, event: StreamEvent) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn get_all(&self) -> &Vec<StreamEvent> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn filter_by_type(&self, event_type: StreamEventType) -> Vec<StreamEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_to_sse` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn stream_to_sse<S>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_to_json` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub fn stream_to_json<S>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling hello_agents v1.37.0 (/opt/rustwide/workdir/crates/hello_agents)
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> crates/ch-07/src/bin/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> crates/ch-07/src/bin/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `question` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                     -- this formatting argument uses named argument `question` by position
[INFO] [stdout] 116 |                 EXECUTOR_PROMPT_TEMPLATE,
[INFO] [stdout] 117 |                 question = question,
[INFO] [stdout]     |                 ^^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(named_arguments_used_positionally)]` on by default
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {question} {} {} {}",
[INFO] [stdout]     |                      ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `plan` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                        -- this formatting argument uses named argument `plan` by position
[INFO] [stdout] ...
[INFO] [stdout] 118 |                 plan = format!("{:?}", plan),
[INFO] [stdout]     |                 ^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {plan} {} {}",
[INFO] [stdout]     |                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `history` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                           -- this formatting argument uses named argument `history` by position
[INFO] [stdout] ...
[INFO] [stdout] 119 |                 history = if history.is_empty() { "无" } else { &history },
[INFO] [stdout]     |                 ^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {history} {}",
[INFO] [stdout]     |                            +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: named argument `current_step` is not used by name
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {}",
[INFO] [stdout]     |                              -- this formatting argument uses named argument `current_step` by position
[INFO] [stdout] ...
[INFO] [stdout] 120 |                 current_step = step,
[INFO] [stdout]     |                 ^^^^^^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stdout]     |
[INFO] [stdout] help: use the named argument by name to avoid ambiguity
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 "{} {} {} {} {current_step}",
[INFO] [stdout]     |                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> crates/ch-04/src/tools.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> crates/ch-07/src/my_llm.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |             (s) => {
[INFO] [stdout]     |             ^ ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 127 -             (s) => {
[INFO] [stdout] 127 +             s  => {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> crates/ch-07/src/message.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::pin::Pin`
[INFO] [stdout]  --> crates/hello_agents/src/core/streaming.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::pin::Pin;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> crates/hello_agents/src/core/streaming.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context` and `Poll`
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::task::{Context, Poll};
[INFO] [stdout]    |                 ^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::mpsc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/ch-07/src/my_llm.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |             _ => ""
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/ch-07/src/my_llm.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |             "ollama" => "ollama",
[INFO] [stdout]     |             -------- matches some of the same values
[INFO] [stdout] 125 |             "vllm" => "vllm",
[INFO] [stdout]     |             ------ matches some of the same values
[INFO] [stdout] 126 |             "local" => "local",
[INFO] [stdout]     |             ------- matches some of the same values
[INFO] [stdout] 127 |             (s) => {
[INFO] [stdout]     |              - matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 138 |             _ => ""
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MessageRole` is never used
[INFO] [stdout]  --> crates/ch-07/src/message.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum MessageRole {
[INFO] [stdout]   |          ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `val_to_str` and `str_to_val` are never used
[INFO] [stdout]   --> crates/ch-07/src/message.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl MessageRole {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 15 |     /// role 文字表示
[INFO] [stdout] 16 |     pub fn val_to_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn str_to_val(role: &str) -> MessageRole {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MessageV2` is never constructed
[INFO] [stdout]   --> crates/ch-07/src/message.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct MessageV2{
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/ch-07/src/message.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl MessageV2 {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 49 |     pub fn new(msg: Message, timestamp: Option<usize>, metadata: Option<HashMap<String, serde_json::Value>>) -> MessageV2 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatRequestV2` is never constructed
[INFO] [stdout]   --> crates/ch-07/src/message.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct ChatRequestV2 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Config` should have a snake case name
[INFO] [stdout]  --> crates/ch-07/src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | mod Config;
[INFO] [stdout]   |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `config`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prompt`
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:114:17
[INFO] [stdout]     |
[INFO] [stdout] 114 |             let prompt = format!(
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prompt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `llm_client` is never read
[INFO] [stdout]    --> crates/ch-04/src/plan_and_solve.rs:151:5
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct PlanAndSolveAgent {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] 151 |     llm_client: Arc<LLMClient>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MessageRole` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/message.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum MessageRole {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `val_to_str` and `str_to_val` are never used
[INFO] [stdout]   --> crates/hello_agents/src/core/message.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MessageRole {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 27 |     fn val_to_str(&self) -> &'static str {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn str_to_val(role: &str) -> Option<MessageRole> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Message` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/message.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct Message {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_dict`, `from_dict`, and `to_text` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/message.rs:68:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl Message {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  68 |     pub fn new(content: String,
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub(crate) fn to_dict(self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn from_dict(mut dict: HashMap<String, serde_json::Value>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn to_text(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HelloAgentException` is never used
[INFO] [stdout]  --> crates/hello_agents/src/core/exceptions.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum HelloAgentException {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `llm`, `agent`, `config`, `tool`, and `is_llm_error` are never used
[INFO] [stdout]   --> crates/hello_agents/src/core/exceptions.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl HelloAgentException {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 30 |     #[inline]
[INFO] [stdout] 31 |     pub fn llm(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn agent(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn config(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn tool(msg: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn is_llm_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Config` is never constructed
[INFO] [stdout]  --> crates/hello_agents/src/core/config.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct Config {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_model` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | fn default_model() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_provider` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn default_provider() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_temperature` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:196:4
[INFO] [stdout]     |
[INFO] [stdout] 196 | fn default_temperature() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_log_level` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:199:4
[INFO] [stdout]     |
[INFO] [stdout] 199 | fn default_log_level() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_history_length` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:202:4
[INFO] [stdout]     |
[INFO] [stdout] 202 | fn default_max_history_length() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_context_window` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:205:4
[INFO] [stdout]     |
[INFO] [stdout] 205 | fn default_context_window() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_compression_threshold` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn default_compression_threshold() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_min_retain_rounds` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:211:4
[INFO] [stdout]     |
[INFO] [stdout] 211 | fn default_min_retain_rounds() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_provider` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:214:4
[INFO] [stdout]     |
[INFO] [stdout] 214 | fn default_summary_provider() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_model` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:217:4
[INFO] [stdout]     |
[INFO] [stdout] 217 | fn default_summary_model() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_max_tokens` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:220:4
[INFO] [stdout]     |
[INFO] [stdout] 220 | fn default_summary_max_tokens() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_summary_temperature` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn default_summary_temperature() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_output_max_lines` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:226:4
[INFO] [stdout]     |
[INFO] [stdout] 226 | fn default_tool_output_max_lines() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_output_max_bytes` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:229:4
[INFO] [stdout]     |
[INFO] [stdout] 229 | fn default_tool_output_max_bytes() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_output_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:232:4
[INFO] [stdout]     |
[INFO] [stdout] 232 | fn default_tool_output_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_truncate_direction` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:235:4
[INFO] [stdout]     |
[INFO] [stdout] 235 | fn default_truncate_direction() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_true` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn default_true() -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_trace_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:241:4
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn default_trace_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_skills_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn default_skills_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_failure_threshold` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn default_failure_threshold() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_recovery_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn default_recovery_timeout() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_session_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:253:4
[INFO] [stdout]     |
[INFO] [stdout] 253 | fn default_session_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_auto_save_interval` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:256:4
[INFO] [stdout]     |
[INFO] [stdout] 256 | fn default_auto_save_interval() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_subagent_max_steps` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:259:4
[INFO] [stdout]     |
[INFO] [stdout] 259 | fn default_subagent_max_steps() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_light_provider` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:262:4
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn default_light_provider() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_light_model` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:265:4
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn default_light_model() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_todo_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn default_todo_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_devlog_dir` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:271:4
[INFO] [stdout]     |
[INFO] [stdout] 271 | fn default_devlog_dir() -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_max_concurrent_tools` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn default_max_concurrent_tools() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_hook_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn default_hook_timeout() -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_llm_async_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:280:4
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn default_llm_async_timeout() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_tool_async_timeout` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:283:4
[INFO] [stdout]     |
[INFO] [stdout] 283 | fn default_tool_async_timeout() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_stream_buffer_size` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn default_stream_buffer_size() -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_env`, `to_dict`, and `get_available_tokens` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/config.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 348 | impl Config {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] 349 |     /// 根据env文件获取对应的变量内容
[INFO] [stdout] 350 |     pub fn from_env() -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub(crate) fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     pub fn get_available_tokens(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventType` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum EventType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `val_as_str` is never used
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl EventType {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 50 |     pub fn val_as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AgentEvent` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct AgentEvent {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_dict` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl AgentEvent {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 114 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionContext` is never constructed
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub struct ExecutionContext {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `increment_step`, `add_tokens`, `set_metadata`, and `get_metadata` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl ExecutionContext {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 166 |     pub fn new(input_text: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn increment_step(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn add_tokens(&mut self, tokens: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn set_metadata(mut self, key: &'static str, value: &'static str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn get_metadata(self, key: &str) -> Option<serde_json::Value> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LifecycleHook` is never used
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:193:10
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub type LifecycleHook =
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionStore` is never constructed
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SessionStore {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl SessionStore {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn new(session_dir: &str) -> io::Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     fn generate_session_id(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn save(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn load(&self, filepath: &Path) -> io::Result<serde_json::Value> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn list_sessions(&self) -> io::Result<Vec<HashMap<String, serde_json::Value>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn delete(&self, name: &str) -> io::Result<bool> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn check_config_consistency(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub fn check_tool_schema_consistency(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn compute_tool_hash(signature: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamBuffer` is never constructed
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct StreamBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `get_all`, `clear`, `filter_by_type`, and `len` are never used
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl StreamBuffer {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 139 |     pub fn new(max_buffer_size: Option<usize>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn add(&mut self, event: StreamEvent) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn get_all(&self) -> &Vec<StreamEvent> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn filter_by_type(&self, event_type: StreamEventType) -> Vec<StreamEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.70s
[INFO] running `Command { std: "docker" "inspect" "45e9b365a12befa7c5ca783b29e04adeb9b99e8d40f62eb2ed3cc6e632f68a5e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "45e9b365a12befa7c5ca783b29e04adeb9b99e8d40f62eb2ed3cc6e632f68a5e", kill_on_drop: false }`
[INFO] [stdout] 45e9b365a12befa7c5ca783b29e04adeb9b99e8d40f62eb2ed3cc6e632f68a5e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f81e088bd81606f68d33db753b059905c0920c35465a47b55da284fbd19fa52c
[INFO] running `Command { std: "docker" "start" "-a" "f81e088bd81606f68d33db753b059905c0920c35465a47b55da284fbd19fa52c", kill_on_drop: false }`
[INFO] [stderr] warning: patch `cudaforge v0.1.6 (https://github.com/jbg/cudaforge?rev=e7c1967340e40673db98dc9e17da0f04834a456f#e7c19673)` was not used in the crate graph
[INFO] [stderr] help: Check that the patched package version and available features are compatible
[INFO] [stderr]       with the dependency requirements. If the patch has a different version from
[INFO] [stderr]       what is locked in the Cargo.lock file, run `cargo update` to use the new
[INFO] [stderr]       version. This may also occur with an optional dependency that is not enabled.
[INFO] [stderr] warning: named argument `question` is not used by name
[INFO] [stderr]    --> crates/ch-04/src/plan_and_solve.rs:117:17
[INFO] [stderr]     |
[INFO] [stderr] 115 |                 "{} {} {} {} {}",
[INFO] [stderr]     |                     -- this formatting argument uses named argument `question` by position
[INFO] [stderr] 116 |                 EXECUTOR_PROMPT_TEMPLATE,
[INFO] [stderr] 117 |                 question = question,
[INFO] [stderr]     |                 ^^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(named_arguments_used_positionally)]` on by default
[INFO] [stderr] help: use the named argument by name to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 115 |                 "{} {question} {} {} {}",
[INFO] [stderr]     |                      ++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: named argument `plan` is not used by name
[INFO] [stderr]    --> crates/ch-04/src/plan_and_solve.rs:118:17
[INFO] [stderr]     |
[INFO] [stderr] 115 |                 "{} {} {} {} {}",
[INFO] [stderr]     |                        -- this formatting argument uses named argument `plan` by position
[INFO] [stderr] ...
[INFO] [stderr] 118 |                 plan = format!("{:?}", plan),
[INFO] [stderr]     |                 ^^^^ this named argument is referred to by position in formatting string
[INFO] [stderr]     |
[INFO] [stderr] help: use the named argument by name to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 115 |                 "{} {} {plan} {} {}",
[INFO] [stderr]     |                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: named argument `history` is not used by name
[INFO] [stderr]    --> crates/ch-04/src/plan_and_solve.rs:119:17
[INFO] [stderr]     |
[INFO] [stderr] 115 |                 "{} {} {} {} {}",
[INFO] [stderr]     |                           -- this formatting argument uses named argument `history` by position
[INFO] [stderr] ...
[INFO] [stderr] 119 |                 history = if history.is_empty() { "无" } else { &history },
[INFO] [stderr]     |                 ^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stderr]     |
[INFO] [stderr] help: use the named argument by name to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 115 |                 "{} {} {} {history} {}",
[INFO] [stderr]     |                            +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: named argument `current_step` is not used by name
[INFO] [stderr]    --> crates/ch-04/src/plan_and_solve.rs:120:17
[INFO] [stderr]     |
[INFO] [stderr] 115 |                 "{} {} {} {} {}",
[INFO] [stderr]     |                              -- this formatting argument uses named argument `current_step` by position
[INFO] [stderr] ...
[INFO] [stderr] 120 |                 current_step = step,
[INFO] [stderr]     |                 ^^^^^^^^^^^^ this named argument is referred to by position in formatting string
[INFO] [stderr]     |
[INFO] [stderr] help: use the named argument by name to avoid ambiguity
[INFO] [stderr]     |
[INFO] [stderr] 115 |                 "{} {} {} {} {current_step}",
[INFO] [stderr]     |                               ++++++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde_json::Value`
[INFO] [stderr]  --> crates/ch-04/src/tools.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use serde_json::Value;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `prompt`
[INFO] [stderr]    --> crates/ch-04/src/plan_and_solve.rs:114:17
[INFO] [stderr]     |
[INFO] [stderr] 114 |             let prompt = format!(
[INFO] [stderr]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prompt`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `llm_client` is never read
[INFO] [stderr]    --> crates/ch-04/src/plan_and_solve.rs:151:5
[INFO] [stderr]     |
[INFO] [stderr] 150 | pub struct PlanAndSolveAgent {
[INFO] [stderr]     |            ----------------- field in this struct
[INFO] [stderr] 151 |     llm_client: Arc<LLMClient>,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `simple_hello_agents_base` (lib) generated 7 warnings (run `cargo fix --lib -p simple_hello_agents_base` to apply 2 suggestions)
[INFO] [stderr] warning: unnecessary parentheses around pattern
[INFO] [stderr]    --> crates/ch-07/src/my_llm.rs:127:13
[INFO] [stderr]     |
[INFO] [stderr] 127 |             (s) => {
[INFO] [stderr]     |             ^ ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 127 -             (s) => {
[INFO] [stderr] 127 +             s  => {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> crates/ch-07/src/message.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> crates/ch-07/src/my_llm.rs:138:13
[INFO] [stderr]     |
[INFO] [stderr] 138 |             _ => ""
[INFO] [stderr]     |             ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> crates/ch-07/src/my_llm.rs:138:13
[INFO] [stderr]     |
[INFO] [stderr] 124 |             "ollama" => "ollama",
[INFO] [stderr]     |             -------- matches some of the same values
[INFO] [stderr] 125 |             "vllm" => "vllm",
[INFO] [stderr]     |             ------ matches some of the same values
[INFO] [stderr] 126 |             "local" => "local",
[INFO] [stderr]     |             ------- matches some of the same values
[INFO] [stderr] 127 |             (s) => {
[INFO] [stderr]     |              - matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 138 |             _ => ""
[INFO] [stderr]     |             ^ collectively making this unreachable
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: enum `MessageRole` is never used
[INFO] [stderr]  --> crates/ch-07/src/message.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub enum MessageRole {
[INFO] [stderr]   |          ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `val_to_str` and `str_to_val` are never used
[INFO] [stderr]   --> crates/ch-07/src/message.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl MessageRole {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 15 |     /// role 文字表示
[INFO] [stderr] 16 |     pub fn val_to_str(&self) -> &'static str {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn str_to_val(role: &str) -> MessageRole {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MessageV2` is never constructed
[INFO] [stderr]   --> crates/ch-07/src/message.rs:41:12
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub struct MessageV2{
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> crates/ch-07/src/message.rs:49:12
[INFO] [stderr]    |
[INFO] [stderr] 48 | impl MessageV2 {
[INFO] [stderr]    | -------------- associated function in this implementation
[INFO] [stderr] 49 |     pub fn new(msg: Message, timestamp: Option<usize>, metadata: Option<HashMap<String, serde_json::Value>>) -> MessageV2 {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ChatRequestV2` is never constructed
[INFO] [stderr]   --> crates/ch-07/src/message.rs:63:12
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub struct ChatRequestV2 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: module `Config` should have a snake case name
[INFO] [stderr]  --> crates/ch-07/src/lib.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | mod Config;
[INFO] [stderr]   |     ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `config`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `simple_hello_agents_v2` (lib) generated 9 warnings (run `cargo fix --lib -p simple_hello_agents_v2` to apply 2 suggestions)
[INFO] [stderr] warning: `simple_hello_agents_v2` (lib test) generated 9 warnings (9 duplicates)
[INFO] [stderr] warning: `simple_hello_agents_base` (lib test) generated 7 warnings (7 duplicates)
[INFO] [stderr] warning: unused import: `std::pin::Pin`
[INFO] [stderr]  --> crates/hello_agents/src/core/streaming.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::pin::Pin;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]  --> crates/hello_agents/src/core/streaming.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::sync::Arc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Context` and `Poll`
[INFO] [stderr]   --> crates/hello_agents/src/core/streaming.rs:10:17
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::task::{Context, Poll};
[INFO] [stderr]    |                 ^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tokio::sync::mpsc`
[INFO] [stderr]   --> crates/hello_agents/src/core/streaming.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use tokio::sync::mpsc;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> crates/hello_agents/src/core/streaming.rs:240:9
[INFO] [stderr]     |
[INFO] [stderr] 240 |     use super::*;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `MessageRole` is never used
[INFO] [stderr]   --> crates/hello_agents/src/core/message.rs:18:10
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub enum MessageRole {
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `val_to_str` and `str_to_val` are never used
[INFO] [stderr]   --> crates/hello_agents/src/core/message.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | impl MessageRole {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 27 |     fn val_to_str(&self) -> &'static str {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     fn str_to_val(role: &str) -> Option<MessageRole> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Message` is never constructed
[INFO] [stderr]   --> crates/hello_agents/src/core/message.rs:58:12
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub struct Message {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `to_dict`, `from_dict`, and `to_text` are never used
[INFO] [stderr]    --> crates/hello_agents/src/core/message.rs:68:12
[INFO] [stderr]     |
[INFO] [stderr]  67 | impl Message {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr]  68 |     pub fn new(content: String,
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  80 |     pub(crate) fn to_dict(self) -> HashMap<String, serde_json::Value> {
[INFO] [stderr]     |                   ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  90 |     pub fn from_dict(mut dict: HashMap<String, serde_json::Value>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 107 |     pub fn to_text(&self) -> String {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `HelloAgentException` is never used
[INFO] [stderr]  --> crates/hello_agents/src/core/exceptions.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub enum HelloAgentException {
[INFO] [stderr]   |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `llm`, `agent`, `config`, `tool`, and `is_llm_error` are never used
[INFO] [stderr]   --> crates/hello_agents/src/core/exceptions.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | impl HelloAgentException {
[INFO] [stderr]    | ------------------------ associated items in this implementation
[INFO] [stderr] 30 |     #[inline]
[INFO] [stderr] 31 |     pub fn llm(msg: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn agent(msg: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn config(msg: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn tool(msg: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 46 |     pub fn is_llm_error(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Config` is never constructed
[INFO] [stderr]  --> crates/hello_agents/src/core/config.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub struct Config {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_model` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:190:4
[INFO] [stderr]     |
[INFO] [stderr] 190 | fn default_model() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_provider` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:193:4
[INFO] [stderr]     |
[INFO] [stderr] 193 | fn default_provider() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_temperature` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:196:4
[INFO] [stderr]     |
[INFO] [stderr] 196 | fn default_temperature() -> f64 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_log_level` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:199:4
[INFO] [stderr]     |
[INFO] [stderr] 199 | fn default_log_level() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_max_history_length` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:202:4
[INFO] [stderr]     |
[INFO] [stderr] 202 | fn default_max_history_length() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_context_window` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:205:4
[INFO] [stderr]     |
[INFO] [stderr] 205 | fn default_context_window() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_compression_threshold` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:208:4
[INFO] [stderr]     |
[INFO] [stderr] 208 | fn default_compression_threshold() -> f64 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_min_retain_rounds` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:211:4
[INFO] [stderr]     |
[INFO] [stderr] 211 | fn default_min_retain_rounds() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_summary_provider` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:214:4
[INFO] [stderr]     |
[INFO] [stderr] 214 | fn default_summary_provider() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_summary_model` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:217:4
[INFO] [stderr]     |
[INFO] [stderr] 217 | fn default_summary_model() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_summary_max_tokens` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:220:4
[INFO] [stderr]     |
[INFO] [stderr] 220 | fn default_summary_max_tokens() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_summary_temperature` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:223:4
[INFO] [stderr]     |
[INFO] [stderr] 223 | fn default_summary_temperature() -> f64 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_tool_output_max_lines` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:226:4
[INFO] [stderr]     |
[INFO] [stderr] 226 | fn default_tool_output_max_lines() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_tool_output_max_bytes` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:229:4
[INFO] [stderr]     |
[INFO] [stderr] 229 | fn default_tool_output_max_bytes() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_tool_output_dir` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:232:4
[INFO] [stderr]     |
[INFO] [stderr] 232 | fn default_tool_output_dir() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_truncate_direction` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:235:4
[INFO] [stderr]     |
[INFO] [stderr] 235 | fn default_truncate_direction() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_true` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:238:4
[INFO] [stderr]     |
[INFO] [stderr] 238 | fn default_true() -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_trace_dir` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:241:4
[INFO] [stderr]     |
[INFO] [stderr] 241 | fn default_trace_dir() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_skills_dir` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:244:4
[INFO] [stderr]     |
[INFO] [stderr] 244 | fn default_skills_dir() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_failure_threshold` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:247:4
[INFO] [stderr]     |
[INFO] [stderr] 247 | fn default_failure_threshold() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_recovery_timeout` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:250:4
[INFO] [stderr]     |
[INFO] [stderr] 250 | fn default_recovery_timeout() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_session_dir` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:253:4
[INFO] [stderr]     |
[INFO] [stderr] 253 | fn default_session_dir() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_auto_save_interval` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:256:4
[INFO] [stderr]     |
[INFO] [stderr] 256 | fn default_auto_save_interval() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_subagent_max_steps` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:259:4
[INFO] [stderr]     |
[INFO] [stderr] 259 | fn default_subagent_max_steps() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_light_provider` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:262:4
[INFO] [stderr]     |
[INFO] [stderr] 262 | fn default_light_provider() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_light_model` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:265:4
[INFO] [stderr]     |
[INFO] [stderr] 265 | fn default_light_model() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_todo_dir` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:268:4
[INFO] [stderr]     |
[INFO] [stderr] 268 | fn default_todo_dir() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_devlog_dir` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:271:4
[INFO] [stderr]     |
[INFO] [stderr] 271 | fn default_devlog_dir() -> String {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_max_concurrent_tools` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:274:4
[INFO] [stderr]     |
[INFO] [stderr] 274 | fn default_max_concurrent_tools() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_hook_timeout` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:277:4
[INFO] [stderr]     |
[INFO] [stderr] 277 | fn default_hook_timeout() -> f64 {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_llm_async_timeout` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:280:4
[INFO] [stderr]     |
[INFO] [stderr] 280 | fn default_llm_async_timeout() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_tool_async_timeout` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:283:4
[INFO] [stderr]     |
[INFO] [stderr] 283 | fn default_tool_async_timeout() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_stream_buffer_size` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:286:4
[INFO] [stderr]     |
[INFO] [stderr] 286 | fn default_stream_buffer_size() -> usize {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `from_env`, `to_dict`, and `get_available_tokens` are never used
[INFO] [stderr]    --> crates/hello_agents/src/core/config.rs:350:12
[INFO] [stderr]     |
[INFO] [stderr] 348 | impl Config {
[INFO] [stderr]     | ----------- associated items in this implementation
[INFO] [stderr] 349 |     /// 根据env文件获取对应的变量内容
[INFO] [stderr] 350 |     pub fn from_env() -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 371 |     pub(crate) fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stderr]     |                   ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 378 |     pub fn get_available_tokens(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `EventType` is never used
[INFO] [stderr]   --> crates/hello_agents/src/core/lifecycle.rs:18:10
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub enum EventType {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `val_as_str` is never used
[INFO] [stderr]   --> crates/hello_agents/src/core/lifecycle.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 49 | impl EventType {
[INFO] [stderr]    | -------------- method in this implementation
[INFO] [stderr] 50 |     pub fn val_as_str(&self) -> &'static str {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AgentEvent` is never constructed
[INFO] [stderr]   --> crates/hello_agents/src/core/lifecycle.rs:87:12
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub struct AgentEvent {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `to_dict` are never used
[INFO] [stderr]    --> crates/hello_agents/src/core/lifecycle.rs:114:12
[INFO] [stderr]     |
[INFO] [stderr] 113 | impl AgentEvent {
[INFO] [stderr]     | --------------- associated items in this implementation
[INFO] [stderr] 114 |     pub fn new(
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     pub fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ExecutionContext` is never constructed
[INFO] [stderr]    --> crates/hello_agents/src/core/lifecycle.rs:157:12
[INFO] [stderr]     |
[INFO] [stderr] 157 | pub struct ExecutionContext {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `increment_step`, `add_tokens`, `set_metadata`, and `get_metadata` are never used
[INFO] [stderr]    --> crates/hello_agents/src/core/lifecycle.rs:166:12
[INFO] [stderr]     |
[INFO] [stderr] 165 | impl ExecutionContext {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr] 166 |     pub fn new(input_text: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 174 |     pub fn increment_step(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 177 |     pub fn add_tokens(&mut self, tokens: usize) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 182 |     pub fn set_metadata(mut self, key: &'static str, value: &'static str) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 187 |     pub fn get_metadata(self, key: &str) -> Option<serde_json::Value> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `LifecycleHook` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/lifecycle.rs:193:10
[INFO] [stderr]     |
[INFO] [stderr] 193 | pub type LifecycleHook =
[INFO] [stderr]     |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SessionStore` is never constructed
[INFO] [stderr]   --> crates/hello_agents/src/core/session_store.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub struct SessionStore {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> crates/hello_agents/src/core/session_store.rs:58:12
[INFO] [stderr]     |
[INFO] [stderr]  52 | impl SessionStore {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  58 |     pub fn new(session_dir: &str) -> io::Result<Self> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  70 |     fn generate_session_id(&self) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  90 |     pub fn save(
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 162 |     pub fn load(&self, filepath: &Path) -> io::Result<serde_json::Value> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 172 |     pub fn list_sessions(&self) -> io::Result<Vec<HashMap<String, serde_json::Value>>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 223 |     pub fn delete(&self, name: &str) -> io::Result<bool> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 241 |     pub fn check_config_consistency(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 267 |     pub fn check_tool_schema_consistency(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 283 |     pub fn compute_tool_hash(signature: &str) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `StreamEventType` is never used
[INFO] [stderr]   --> crates/hello_agents/src/core/streaming.rs:17:10
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub enum StreamEventType {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `val_as_str` is never used
[INFO] [stderr]   --> crates/hello_agents/src/core/streaming.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 38 | impl StreamEventType {
[INFO] [stderr]    | -------------------- method in this implementation
[INFO] [stderr] 39 |     pub fn val_as_str(&self) -> &'static str {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StreamEvent` is never constructed
[INFO] [stderr]   --> crates/hello_agents/src/core/streaming.rs:62:12
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub struct StreamEvent {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `to_sse`, and `to_dict` are never used
[INFO] [stderr]    --> crates/hello_agents/src/core/streaming.rs:72:12
[INFO] [stderr]     |
[INFO] [stderr]  71 | impl StreamEvent {
[INFO] [stderr]     | ---------------- associated items in this implementation
[INFO] [stderr]  72 |     pub fn new(
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub fn to_sse(&self) -> String {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub fn to_dict(&self) -> HashMap<String, serde_json::Value> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StreamBuffer` is never constructed
[INFO] [stderr]    --> crates/hello_agents/src/core/streaming.rs:133:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub struct StreamBuffer {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `add`, `get_all`, `clear`, `filter_by_type`, and `len` are never used
[INFO] [stderr]    --> crates/hello_agents/src/core/streaming.rs:139:12
[INFO] [stderr]     |
[INFO] [stderr] 138 | impl StreamBuffer {
[INFO] [stderr]     | ----------------- associated items in this implementation
[INFO] [stderr] 139 |     pub fn new(max_buffer_size: Option<usize>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 148 |     pub fn add(&mut self, event: StreamEvent) {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 |     pub fn get_all(&self) -> &Vec<StreamEvent> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 166 |     pub fn clear(&mut self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 173 |     pub fn filter_by_type(&self, event_type: StreamEventType) -> Vec<StreamEvent> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 181 |     pub fn len(&self) -> usize {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `stream_to_sse` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/streaming.rs:195:8
[INFO] [stderr]     |
[INFO] [stderr] 195 | pub fn stream_to_sse<S>(
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `stream_to_json` is never used
[INFO] [stderr]    --> crates/hello_agents/src/core/streaming.rs:215:8
[INFO] [stderr]     |
[INFO] [stderr] 215 | pub fn stream_to_json<S>(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]  --> crates/ch-07/src/bin/main.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::sync::Arc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> crates/ch-07/src/bin/main.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `hello_agents` (lib) generated 63 warnings (run `cargo fix --lib -p hello_agents` to apply 5 suggestions)
[INFO] [stderr] warning: `hello_agents` (lib test) generated 56 warnings (56 duplicates)
[INFO] [stderr] warning: `simple_hello_agents_v2` (bin "main" test) generated 2 warnings (run `cargo fix --bin "main" -p simple_hello_agents_v2 --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/hello_agents-ee20612d90faf3ce)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test core::streaming::tests::test_stream_to_json ... ok
[INFO] [stdout] test core::streaming::tests::test_stream_to_sse ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/simple_hello_agents_base-7600bb7d80311f80)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/base_main.rs (/opt/rustwide/target/debug/deps/base_main-9e1436776bd74a05)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/linear_sieve.rs (/opt/rustwide/target/debug/deps/linear_sieve-f4385a81d471562d)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/main.rs (/opt/rustwide/target/debug/deps/main-160f3015f56367da)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/simple_hello_agents_v2-795df0049c758d64)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/main.rs (/opt/rustwide/target/debug/deps/main-762fa81bdcd37d39)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests hello_agents
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore (line 21) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::list_sessions (line 169) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::AgentEvent (line 106) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::ExecutionContext (line 151) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::delete (line 218) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::AgentEvent (line 80) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::load (line 153) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::save (line 80) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::AgentEvent (line 98) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::check_tool_schema_consistency (line 260) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/streaming.rs - core::streaming::StreamBuffer (line 129) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/streaming.rs - core::streaming::stream_to_sse (line 188) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/streaming.rs - core::streaming::StreamEvent::to_sse (line 97) ... FAILED
[INFO] [stdout] test crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::check_config_consistency (line 235) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore (line 21) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff1a}
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:22:3
[INFO] [stdout]    |
[INFO] [stdout] 22 | 功能：
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '：' (Fullwidth Colon) looks like ':' (Colon), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 22 - 功能：
[INFO] [stdout] 22 + 功能:
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff1a}
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | 用法示例：
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '：' (Fullwidth Colon) looks like ':' (Colon), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 28 - 用法示例：
[INFO] [stdout] 28 + 用法示例:
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: `
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | ```rust
[INFO] [stdout]    | ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: character appears 2 more times
[INFO] [stdout] help: Unicode character '`' (Grave Accent) looks like ''' (Single Quote), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 29 - ```rust
[INFO] [stdout] 29 + '''rust
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: `
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | ```
[INFO] [stdout]    | ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: character appears 2 more times
[INFO] [stdout] help: Unicode character '`' (Grave Accent) looks like ''' (Single Quote), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 46 - ```
[INFO] [stdout] 46 + '''
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `:`
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:22:3
[INFO] [stdout]    |
[INFO] [stdout] 22 | 功能：
[INFO] [stdout]    |     ^^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::list_sessions (line 169) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff0c}
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:171:15
[INFO] [stdout]     |
[INFO] [stdout] 171 |         会话信息列表，按保存时间倒序排列
[INFO] [stdout]     |                     ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '，' (Fullwidth Comma) looks like ',' (Comma), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 171 -         会话信息列表，按保存时间倒序排列
[INFO] [stdout] 171 +         会话信息列表,按保存时间倒序排列
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `:`
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 170 |     Returns:
[INFO] [stdout]     |            ^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::AgentEvent (line 106) stdout ----
[INFO] [stdout] error: this file contains an unclosed delimiter
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:111:34
[INFO] [stdout]     |
[INFO] [stdout] 107 | let event = AgentEvent.new(
[INFO] [stdout]     |                           - unclosed delimiter
[INFO] [stdout] ...
[INFO] [stdout] 111 |      tool_args={"query": "hello"}
[INFO] [stdout]     |                                  ^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::ExecutionContext (line 151) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff0c}
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:152:17
[INFO] [stdout]     |
[INFO] [stdout] 152 | 在异步执行过程中传递的上下文信息，包含：
[INFO] [stdout]     |                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '，' (Fullwidth Comma) looks like ',' (Comma), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 152 - 在异步执行过程中传递的上下文信息，包含：
[INFO] [stdout] 152 + 在异步执行过程中传递的上下文信息,包含：
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff1a}
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:152:20
[INFO] [stdout]     |
[INFO] [stdout] 152 | 在异步执行过程中传递的上下文信息，包含：
[INFO] [stdout]     |                                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '：' (Fullwidth Colon) looks like ':' (Colon), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 152 - 在异步执行过程中传递的上下文信息，包含：
[INFO] [stdout] 152 + 在异步执行过程中传递的上下文信息，包含:
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `,`
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:152:17
[INFO] [stdout]     |
[INFO] [stdout] 152 | 在异步执行过程中传递的上下文信息，包含：
[INFO] [stdout]     |                                 ^^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::delete (line 218) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff08}
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:220:27
[INFO] [stdout]     |
[INFO] [stdout] 220 |         session_name: 会话名称（不含 .json 后缀）
[INFO] [stdout]     |                               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '（' (Fullwidth Left Parenthesis) looks like '(' (Left Parenthesis), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 220 -         session_name: 会话名称（不含 .json 后缀）
[INFO] [stdout] 220 +         session_name: 会话名称(不含 .json 后缀）
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff09}
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:220:39
[INFO] [stdout]     |
[INFO] [stdout] 220 |         session_name: 会话名称（不含 .json 后缀）
[INFO] [stdout]     |                                                ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '）' (Fullwidth Right Parenthesis) looks like ')' (Right Parenthesis), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 220 -         session_name: 会话名称（不含 .json 后缀）
[INFO] [stdout] 220 +         session_name: 会话名称（不含 .json 后缀)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `:`
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |     Args:
[INFO] [stdout]     |         ^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::AgentEvent (line 80) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff0c}
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | 所有事件的基础数据结构，包含：
[INFO] [stdout]    |                       ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '，' (Fullwidth Comma) looks like ',' (Comma), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 81 - 所有事件的基础数据结构，包含：
[INFO] [stdout] 81 + 所有事件的基础数据结构,包含：
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff1a}
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:81:15
[INFO] [stdout]    |
[INFO] [stdout] 81 | 所有事件的基础数据结构，包含：
[INFO] [stdout]    |                             ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '：' (Fullwidth Colon) looks like ':' (Colon), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 81 - 所有事件的基础数据结构，包含：
[INFO] [stdout] 81 + 所有事件的基础数据结构，包含:
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff08}
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 | - data: 事件数据（灵活扩展）
[INFO] [stdout]    |                 ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '（' (Fullwidth Left Parenthesis) looks like '(' (Left Parenthesis), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 85 - - data: 事件数据（灵活扩展）
[INFO] [stdout] 85 + - data: 事件数据(灵活扩展）
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff09}
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:85:18
[INFO] [stdout]    |
[INFO] [stdout] 85 | - data: 事件数据（灵活扩展）
[INFO] [stdout]    |                           ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '）' (Fullwidth Right Parenthesis) looks like ')' (Right Parenthesis), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 85 - - data: 事件数据（灵活扩展）
[INFO] [stdout] 85 + - data: 事件数据（灵活扩展)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `,`
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | 所有事件的基础数据结构，包含：
[INFO] [stdout]    |                       ^^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::load (line 153) stdout ----
[INFO] [stdout] error: expected one of `!` or `::`, found `:`
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |     Args:
[INFO] [stdout]     |         ^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::save (line 80) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff08}
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:86:24
[INFO] [stdout]    |
[INFO] [stdout] 86 |         metadata: 会话元数据（tokens、steps、duration 等）
[INFO] [stdout]    |                             ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '（' (Fullwidth Left Parenthesis) looks like '(' (Left Parenthesis), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 86 -         metadata: 会话元数据（tokens、steps、duration 等）
[INFO] [stdout] 86 +         metadata: 会话元数据(tokens、steps、duration 等）
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{3001}
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:86:31
[INFO] [stdout]    |
[INFO] [stdout] 86 |         metadata: 会话元数据（tokens、steps、duration 等）
[INFO] [stdout]    |                                     ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '、' (Ideographic Comma) looks like '\' (Backslash), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 86 -         metadata: 会话元数据（tokens、steps、duration 等）
[INFO] [stdout] 86 +         metadata: 会话元数据（tokens\steps、duration 等）
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{3001}
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:86:37
[INFO] [stdout]    |
[INFO] [stdout] 86 |         metadata: 会话元数据（tokens、steps、duration 等）
[INFO] [stdout]    |                                            ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '、' (Ideographic Comma) looks like '\' (Backslash), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 86 -         metadata: 会话元数据（tokens、steps、duration 等）
[INFO] [stdout] 86 +         metadata: 会话元数据（tokens、steps\duration 等）
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff09}
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:86:48
[INFO] [stdout]    |
[INFO] [stdout] 86 |         metadata: 会话元数据（tokens、steps、duration 等）
[INFO] [stdout]    |                                                         ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '）' (Fullwidth Right Parenthesis) looks like ')' (Right Parenthesis), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 86 -         metadata: 会话元数据（tokens、steps、duration 等）
[INFO] [stdout] 86 +         metadata: 会话元数据（tokens、steps、duration 等)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff08}
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:87:30
[INFO] [stdout]    |
[INFO] [stdout] 87 |         session_name: 自定义会话名称（可选）
[INFO] [stdout]    |                                     ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '（' (Fullwidth Left Parenthesis) looks like '(' (Left Parenthesis), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 87 -         session_name: 自定义会话名称（可选）
[INFO] [stdout] 87 +         session_name: 自定义会话名称(可选）
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff09}
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:87:33
[INFO] [stdout]    |
[INFO] [stdout] 87 |         session_name: 自定义会话名称（可选）
[INFO] [stdout]    |                                           ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '）' (Fullwidth Right Parenthesis) looks like ')' (Right Parenthesis), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 87 -         session_name: 自定义会话名称（可选）
[INFO] [stdout] 87 +         session_name: 自定义会话名称（可选)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `:`
[INFO] [stdout]   --> crates/hello_agents/src/core/session_store.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     Args:
[INFO] [stdout]    |         ^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::AgentEvent (line 98) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff08}
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:102:19
[INFO] [stdout]     |
[INFO] [stdout] 102 |         data: 事件数据（键值对）
[INFO] [stdout]     |                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '（' (Fullwidth Left Parenthesis) looks like '(' (Left Parenthesis), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 102 -         data: 事件数据（键值对）
[INFO] [stdout] 102 +         data: 事件数据(键值对）
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff09}
[INFO] [stdout]    --> crates/hello_agents/src/core/lifecycle.rs:102:23
[INFO] [stdout]     |
[INFO] [stdout] 102 |         data: 事件数据（键值对）
[INFO] [stdout]     |                               ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '）' (Fullwidth Right Parenthesis) looks like ')' (Right Parenthesis), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 102 -         data: 事件数据（键值对）
[INFO] [stdout] 102 +         data: 事件数据（键值对)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `:`
[INFO] [stdout]   --> crates/hello_agents/src/core/lifecycle.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     Args:
[INFO] [stdout]    |         ^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::check_tool_schema_consistency (line 260) stdout ----
[INFO] [stdout] error: expected one of `!` or `::`, found `:`
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |     Args:
[INFO] [stdout]     |         ^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/streaming.rs - core::streaming::StreamBuffer (line 129) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff0c}
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | 用于收集和管理流式事件，支持：
[INFO] [stdout]     |                       ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '，' (Fullwidth Comma) looks like ',' (Comma), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 130 - 用于收集和管理流式事件，支持：
[INFO] [stdout] 130 + 用于收集和管理流式事件,支持：
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff1a}
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:130:15
[INFO] [stdout]     |
[INFO] [stdout] 130 | 用于收集和管理流式事件，支持：
[INFO] [stdout]     |                             ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '：' (Fullwidth Colon) looks like ':' (Colon), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 130 - 用于收集和管理流式事件，支持：
[INFO] [stdout] 130 + 用于收集和管理流式事件，支持:
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `,`
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | 用于收集和管理流式事件，支持：
[INFO] [stdout]     |                       ^^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/streaming.rs - core::streaming::stream_to_sse (line 188) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff08}
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:191:27
[INFO] [stdout]     |
[INFO] [stdout] 191 |     include_types: 包含的事件类型（None 表示全部）
[INFO] [stdout]     |                                  ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '（' (Fullwidth Left Parenthesis) looks like '(' (Left Parenthesis), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 191 -     include_types: 包含的事件类型（None 表示全部）
[INFO] [stdout] 191 +     include_types: 包含的事件类型(None 表示全部）
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: unknown start of token: \u{ff09}
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:191:37
[INFO] [stdout]     |
[INFO] [stdout] 191 |     include_types: 包含的事件类型（None 表示全部）
[INFO] [stdout]     |                                                 ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '）' (Fullwidth Right Parenthesis) looks like ')' (Right Parenthesis), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 191 -     include_types: 包含的事件类型（None 表示全部）
[INFO] [stdout] 191 +     include_types: 包含的事件类型（None 表示全部)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `:`
[INFO] [stdout]    --> crates/hello_agents/src/core/streaming.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 | Args:
[INFO] [stdout]     |     ^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/streaming.rs - core::streaming::StreamEvent::to_sse (line 97) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff1a}
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:98:11
[INFO] [stdout]    |
[INFO] [stdout] 98 |     SSE 格式：
[INFO] [stdout]    |             ^^
[INFO] [stdout]    |
[INFO] [stdout] help: Unicode character '：' (Fullwidth Colon) looks like ':' (Colon), but it is not
[INFO] [stdout]    |
[INFO] [stdout] 98 -     SSE 格式：
[INFO] [stdout] 98 +     SSE 格式:
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `格式`
[INFO] [stdout]   --> crates/hello_agents/src/core/streaming.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     SSE 格式：
[INFO] [stdout]    |         ^^^^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::check_config_consistency (line 235) stdout ----
[INFO] [stdout] error: unknown start of token: \u{ff0c}
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:241:15
[INFO] [stdout]     |
[INFO] [stdout] 241 |         检查结果字典，包含 warnings 列表
[INFO] [stdout]     |                     ^^
[INFO] [stdout]     |
[INFO] [stdout] help: Unicode character '，' (Fullwidth Comma) looks like ',' (Comma), but it is not
[INFO] [stdout]     |
[INFO] [stdout] 241 -         检查结果字典，包含 warnings 列表
[INFO] [stdout] 241 +         检查结果字典,包含 warnings 列表
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `!` or `::`, found `:`
[INFO] [stdout]    --> crates/hello_agents/src/core/session_store.rs:236:9
[INFO] [stdout]     |
[INFO] [stdout] 236 |     Args:
[INFO] [stdout]     |         ^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::AgentEvent (line 106)
[INFO] [stdout]     crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::AgentEvent (line 80)
[INFO] [stdout]     crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::AgentEvent (line 98)
[INFO] [stdout]     crates/hello_agents/src/core/lifecycle.rs - core::lifecycle::ExecutionContext (line 151)
[INFO] [stdout]     crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore (line 21)
[INFO] [stdout]     crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::check_config_consistency (line 235)
[INFO] [stdout]     crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::check_tool_schema_consistency (line 260)
[INFO] [stdout]     crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::delete (line 218)
[INFO] [stdout]     crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::list_sessions (line 169)
[INFO] [stdout]     crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::load (line 153)
[INFO] [stdout]     crates/hello_agents/src/core/session_store.rs - core::session_store::SessionStore::save (line 80)
[INFO] [stdout]     crates/hello_agents/src/core/streaming.rs - core::streaming::StreamBuffer (line 129)
[INFO] [stdout]     crates/hello_agents/src/core/streaming.rs - core::streaming::StreamEvent::to_sse (line 97)
[INFO] [stdout]     crates/hello_agents/src/core/streaming.rs - core::streaming::stream_to_sse (line 188)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 14 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.62s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `-p hello_agents --doc`
[INFO] running `Command { std: "docker" "inspect" "f81e088bd81606f68d33db753b059905c0920c35465a47b55da284fbd19fa52c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f81e088bd81606f68d33db753b059905c0920c35465a47b55da284fbd19fa52c", kill_on_drop: false }`
[INFO] [stdout] f81e088bd81606f68d33db753b059905c0920c35465a47b55da284fbd19fa52c
